#!/bin/csh

# This one-line command compiles all of UMFPACK and the double/int demo.
# It forms a useful prototype for Microsoft Visual Studio, which does not
# have the flexibility of Unix/Linux "make".  The latter can be configured
# to compile one file multiple times (as required by UMFPACK).  Here,
# that requirement is solved with a single file, umf_multicompile.c.
#
# No BLAS is used here.  You should modify this to add your BLAS.
# Otherwise your performance will be low.

cc -DDINT -DNBLAS -I../../SuiteSparse_config \
    -I../Include -I../Source -I../../AMD/Include -I../../AMD/Source \
	umfpack_di_demo.c \
	../Source/umf_multicompile.c \
	../Source/umfpack_global.c \
	../Source/umf_ltsolve.c \
	../Source/umf_utsolve.c \
	../Source/umf_triplet.c \
	../Source/umf_assemble.c \
	../Source/umf_store_lu.c \
	../Source/umfpack_solve.c \
	../../AMD/Source/amd_1.c \
	../../AMD/Source/amd_2.c \
	../../AMD/Source/amd_aat.c \
	../../AMD/Source/amd_control.c \
	../../AMD/Source/amd_defaults.c \
	../../AMD/Source/amd_global.c \
	../../AMD/Source/amd_dump.c \
	../../AMD/Source/amd_info.c \
	../../AMD/Source/amd_order.c \
	../../AMD/Source/amd_post_tree.c \
	../../AMD/Source/amd_postorder.c \
	../../AMD/Source/amd_preprocess.c \
	../../AMD/Source/amd_valid.c \
	../Source/umf_analyze.c \
	../Source/umf_apply_order.c \
	../Source/umf_blas3_update.c \
	../Source/umf_build_tuples.c \
	../Source/umf_colamd.c \
	../Source/umf_create_element.c \
	../Source/umf_dump.c \
	../Source/umf_extend_front.c \
	../Source/umf_free.c \
	../Source/umf_fsize.c \
	../Source/umf_garbage_collection.c \
	../Source/umf_get_memory.c \
	../Source/umf_grow_front.c \
	../Source/umf_init_front.c \
	../Source/umf_is_permutation.c \
	../Source/umf_kernel.c \
	../Source/umf_kernel_init.c \
	../Source/umf_kernel_wrapup.c \
	../Source/umf_local_search.c \
	../Source/umf_lsolve.c \
	../Source/umf_malloc.c \
	../Source/umf_mem_alloc_element.c \
	../Source/umf_mem_alloc_head_block.c \
	../Source/umf_mem_alloc_tail_block.c \
	../Source/umf_mem_free_tail_block.c \
	../Source/umf_mem_init_memoryspace.c \
	../Source/umf_realloc.c \
	../Source/umf_report_perm.c \
	../Source/umf_report_vector.c \
	../Source/umf_row_search.c \
	../Source/umf_scale.c \
	../Source/umf_scale_column.c \
	../Source/umf_set_stats.c \
	../Source/umf_singletons.c \
	../Source/umf_solve.c \
	../Source/umf_start_front.c \
	../Source/umf_symbolic_usage.c \
	../Source/umf_transpose.c \
	../Source/umf_tuple_lengths.c \
	../Source/umf_usolve.c \
	../Source/umf_valid_numeric.c \
	../Source/umf_valid_symbolic.c \
	../Source/umfpack_col_to_triplet.c \
	../Source/umfpack_defaults.c \
	../Source/umfpack_free_numeric.c \
	../Source/umfpack_free_symbolic.c \
	../Source/umfpack_get_determinant.c \
	../Source/umfpack_get_lunz.c \
	../Source/umfpack_get_numeric.c \
	../Source/umfpack_get_symbolic.c \
	../Source/umfpack_load_numeric.c \
	../Source/umfpack_load_symbolic.c \
	../Source/umfpack_numeric.c \
	../Source/umfpack_qsymbolic.c \
	../Source/umfpack_report_control.c \
	../Source/umfpack_report_info.c \
	../Source/umfpack_report_matrix.c \
	../Source/umfpack_report_numeric.c \
	../Source/umfpack_report_perm.c \
	../Source/umfpack_report_status.c \
	../Source/umfpack_report_symbolic.c \
	../Source/umfpack_report_triplet.c \
	../Source/umfpack_report_vector.c \
	../Source/umfpack_save_numeric.c \
	../Source/umfpack_save_symbolic.c \
	../Source/umfpack_scale.c \
	../Source/umfpack_symbolic.c \
	../Source/umfpack_tictoc.c \
	../Source/umfpack_timer.c \
	../Source/umfpack_transpose.c \
	../Source/umfpack_triplet_to_col.c \
    -lm

# now run the demo
./a.out
